Вне зависимости от способа обновления, и сохранности данных ради, создавайте резервные копии до осуществления изменений в системе. А также проверяйте созданные копии на работоспособность.
Развитие WordPress (как и создание всего прекрасного) — результат деятельности замечательных людей. Недавно, стал доступен свежий выпуск. Недавно, ознакомился с интересными веб-сервисами и дополнениями для сайта. О изменениях в свежей версии WordPress можете узнать на странице блога: https://wordpress.org/news/ Или после успешного обновления вашего сайта. А эта заметка о создании резервной копии сайта, некоторых дополнениях и хороших веб-сервисах.
Пользуясь веб-сервисом Яндекс.Облако, можете создать снимок диска согласно инструкции: https://cloud.yandex.ru/docs/compute/operations/disk-control/create-snapshot#prepare
Создание резервной копии сайта и базы данных сайта
Останавливаем работу веб-сервера Apache 2 и Nginx:
sudo systemctl stop nginx.service
sudo systemctl stop apache2.service
Создаем копию файлов сайта в домашней директории пользователя:
sudo cp -r /var/www/html/* ~/backup_wordpress
Создаем резервную копии базы данных. Выгружаем данные из «основной» базы данных «wp_site» в файл «dump.sql»:
sudo mysqldump -u root -p wp_site > ~/dump.sql
Подключаемся к интерфейсу командной строки СУБД MySQL:
sudo mysql
Создаем новую базу данных «backup_wp_site» в которую будем выполнять восстановление данных:
CREATE DATABASE backup_wp_site;
Предоставляем все права пользователю «admin_wp_site» на «резервную» базу данных «backup_wp_site»:
GRANT ALL PRIVILEGES ON backup_wp_site.* TO 'admin_wp_site'@'localhost';
\q
Загружаем данные из файла «dump.sql» в базу данных «backup_wp_site»:
sudo mysql -u root -p backup_wp_site < ~/dump.sql
Открываем в текстовом редакторе «nano» файл настройки WordPress:
sudo nano /var/www/html/wp-config.php
В строке содержащей DB_NAME указываем имя «резервной» копии базы данных «backup_wp_site»:
/** Имя базы данных для WordPress */
define( 'DB_NAME', 'backup_wp_site' );
Возобновляем работу веб-сервера Apache 2 и Nginx:
sudo systemctl start apache2.service
sudo systemctl start nginx.service
Проверяем работоспособность сайта. Если всё в порядке (сайт работает с «резервной» копией базы данных успешно), то перенастраиваем сайт на работу с «основной» базой данных начинаем процесс обновления.
Обновление возможно как в автоматизированном режиме (Консоль => Обновления), так и «вручную».
Обновление сайта «вручную»
Скачиваем архив с файлами WordPress:
sudo wget https://ru.wordpress.org/latest-ru_RU.zip
Распаковываем архив с файлами WordPress:
sudo unzip latest-ru_RU.zip
Останавливаем работу веб-сервера.
Копируем файлы «свежей версии» WordPress в директорию сайта:
sudo cp -r wordpress/* /var/www/html
Копируем директорию «/wp-content/uploads» (файлы загруженные пользователями) из «резервной» копии сайта в директорию обновляемого сайта:
sudo cp -r ~/backup_wordpress/wp-content/uploads /var/www/html/wp-content/uploads
Если необходимо, аналогично выполняем копирование «/wp-content/themes» (темы для сайта) и «/wp-content/plugins» (плагины для сайта).
Назначаем владельцем директорий и файлов сайта пользователя «www-data» (системную учетную запись веб-сервера):
sudo find /var/www/html/ -type d -exec chown www-data {} \;
sudo find /var/www/html/ -type f -exec chown www-data {} \;
Возобновляем работу веб-сервера.
Устанавливаем запрет предоставления списка файлов на веб-сервере Apache 2
Открываем в текстовом редакторе «nano» файл настройки веб-сервера Apache 2:
sudo nano /etc/apache2/apache2.conf
Ищем в тексте файла строку:
Options Indexes FollowSymLinks
Для поиска и перехода в текстовом редакторе «nano» можно воспользоваться комбинацией клавиш (Ctrl+Q) и ввести искомую строку.
Заменяем на строку:
Options FollowSymLinks
Измененная часть файла настройки веб-сервера Apache 2 имеет вид:
<Directory /var/www/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Завершаем работу в текстовом редакторе «nano» (Ctrl+X); сохраняем изменения в файле (Y).
Применяем изменения в файле настройки веб-сервера Apache 2:
sudo systemctl reload apache2.service
Отправка письма при обновлении профиля пользователя сайта
СMS WordPress может взаимодействовать с почтовым сервером, если почтовый сервер установлен и настроен. Также осуществление отправки сообщений по электронной почте возможно с использованием дополнения (плагина) и добавлением такой функции на сайт.
Замечательную функциональность имеет веб-сервис Яндекс.Коннект (корпоративная платформа для совместной работы и общения), одна из возможностей которого — сервис электронной почты на вашем домене. О том как подключить ваш домен и пользоваться преимуществами платформы подробно изложено на справочных страницах: https://yandex.ru/support/connect/mail.html
После настройки почтового сервиса, устанавливаем на сайт плагин SMTP сервер Яндекс Почты для WordPress, указываем в настройках плагина данные для подключения, а затем добавляем функцию в настройках темы сайта:
Внешний вид => Редактор тем => Функции темы (functions.php)
Добавляем:
/**
* Отправка письма при обновление профиля пользователя wordpress
*/
function notify_me_by_email( $id ) {
$website = get_bloginfo('wpurl');
$user = get_userdata( $id );
$to = $user->user_email;
$subject = "Обновление профиля на сайте: ".$website."";
$message = "Здравствуйте, " . $user->display_name . ".\nВаш профиль был обновлён.\n\nСпасибо за посещение сайта.\n".$website."";
wp_mail( $to, $subject, $message);
}
add_action( 'profile_update', 'notify_me_by_email', 10, 2);
После сохранения изменений, при обновлении информации в профиле пользователя, будет осуществляться отправка сообщения следующего содержания:
Тема: Обновление профиля на сайте [адрес сайта] Здравствуйте, [псевдоним пользователя] Ваш профиль был обновлён. Спасибо за посещение сайта. [адрес сайта]
Проверка (тестирование) сайта
Проверка доступности вашего сайта из разных городов и стран: Ping-Admin.Ru
Проверка вашего сайта на уязвимости: Pentest-Tools.com
Проверка на отказоустойчивость (нагрузочное тестирование) вашего сайта: Loaddy.com
Всего Вам хорошего.
Публикации на тему:
https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html
http://wp-masters.ru/otpravka-pisma-pri-obnovlenie-profilya-polzovatelya-wordpress